/*
 * Equipment.h
 *
 *  Created on: Jun 16, 2012
 *      Author: gonzalo
 */

#ifndef EQUIPMENT_H_
#define EQUIPMENT_H_

#include "../../Event.h"
#include "../bonus/Bonus.h"
#include "../../../common/DTOEquipment.h"

class Equipment {
public:
	Equipment(BonusType type,Widget* parent);
	Equipment(DTOEquipment* dtoEquipment, Widget* parent);

	virtual void handleEvent(Event event) = 0;
	virtual void updateStatus()  = 0;
	virtual void showOn(SDL_Surface* surface,int offsetX,int offsetY) = 0;
	virtual int reduceLife(int value,playElement element);

	virtual bool isEmpty();
	virtual DTOEquipment* getDTO() = 0;

	virtual ~Equipment();
    BonusType getType() const;
    DTOEquipment* transformInDTO();

private:
	BonusType type;

protected:
	Widget* parent;
	bool emptyFlag;
};

#endif /* EQUIPMENT_H_ */
